package main

import (
	"encoding/json"
	"fmt"
	"os"
)

// 结构体属性的tag，转换成json时转小写
type User struct {
	Id       int    `json:"id"`
	Name     string `json:"name"`
	Password string `json:"-"` // 忽略转换password

	age  int
	Tel  string `json:"tel"`
	Addr string `json:"addr"`
}

func main() {
	//
	user := []User{
		{1, "sonfe1", "111", 23, "xx", "xxx"},
		{2, "sonfer2", "111", 23, "xx", "xxx"},
		{3, "sonfer3", "111", 23, "xx", "xxx"},
	}

	// encoder， 序列化保存到json文件
	file, _ := os.Create("user.json")
	defer file.Close()
	encoder := json.NewEncoder(file)
	encoder.Encode(user)
	// decoder	从json文件解析
	var user2 []User
	file, _ = os.Open("user.json")
	decoder := json.NewDecoder(file)
	decoder.Decode(&user2)
	fmt.Printf("%#v\n", user2)
	fmt.Println(user2)
}
